iT邦幫忙

2026 iThome 鐵人賽

DAY 14
0
Security

從 CSSLP 視角建構恰到好處的軟體安全系列 第 14

Day 13 | 別等寫完 Code 才補漏洞:用威脅建模 (STRIDE) 劃出系統的信任邊界

  • 分享至 

  • xImage
  •  

Introduction

威脅建模是一種方式用來評估一個環境、架構、程式等等可能有風險的方法,重點是盡可能讓相關人員意識/發現到各種危害去避免,因此有別於條列式檢核表,更視覺化的方式去呈現

Discussion

使用OWASP Threat Dragon演練威脅建模

使用OWASP Threat Dragon建立架構

線上版 https://www.threatdragon.com/
https://ithelp.ithome.com.tw/upload/images/20260912/20077752PScJGHa16p.png
選預設樣板Explore a sample threat model
https://ithelp.ithome.com.tw/upload/images/20260912/200777526Kq0CqBLUS.png
接著選擇Generic CMS
https://ithelp.ithome.com.tw/upload/images/20260912/20077752qbZQDxaZUG.png
有一個只有架構,還沒評估風險的樣板
https://ithelp.ithome.com.tw/upload/images/20260912/20077752Z9gRv92GFk.png
https://ithelp.ithome.com.tw/upload/images/20260912/20077752FuhujPOFwa.png

圖案的說明

元素 符號 說明 範例
外部實體(External Entity) 矩形 系統之外的人或系統 使用者、第三方支付閘道、外送員 App
處理程序(Process) 圓形 系統內處理資料的元件 訂單服務、認證服務、通知服務
資料儲存(Data Store) 兩條平行線 資料存放的地方 使用者資料庫、訂單資料庫、Redis 快取
資料流(Data Flow) 箭頭 資料的流動方向 登入請求、訂單資料、付款結果通知

點選Save匯出設定
後續使用Threat Dragon AI分析,如果內容有中文會出錯,要改英文
https://ithelp.ithome.com.tw/upload/images/20260912/200777522wcahOZ6gu.png

使用Threat Dragon AI 協助威脅評估

Threat Dragon AI 設定
Open Model > 複製一份剛建立的 json檔案 > Generate Threat and Mitigations
會用AI將評估的風險填入設定檔(情境寫得越完整,產出結果越好)
https://ithelp.ithome.com.tw/upload/images/20260911/20077752puicfwP5al.png

匯入OWASP Threat Dragon內察看

https://ithelp.ithome.com.tw/upload/images/20260911/20077752WS2lTyskCY.png

https://ithelp.ithome.com.tw/upload/images/20260911/200777524qNLZBUF50.png

Takeaways

STRIDE

威脅 (Threat) 所違反的安全屬性 說明 範例
Spoofing (偽冒) 認證 (Authentication) 假冒成其他人或其他事物的身分 偽造身分驗證權杖 (tokens)
Tampering (竄改) 完整性 (Integrity) 未經授權地修改資料或程式碼 塗改資料庫紀錄、修改組態設定檔
Repudiation (否認) 不可否認性 (Nonrepudiation) 執行了某項操作後卻矢口否認有做過 明明下了單購買卻聲稱沒這回事
Information Disclosure (資訊外洩) 機密性 (Confidentiality) 將資訊暴露給未經授權的個人方 系統錯誤訊息直接把堆疊追蹤 (stack traces) 傾印印在畫面上
Denial of Service (阻斷服務) 可用性 (Availability) 使系統癱瘓無法使用或效能嚴重衰退 用海量的請求灌爆伺服器
Elevation of Privilege (權限提升) 授權 (Authorization) 在未獲授權的情況下取得更高的存取能力 利用系統漏洞設法取得系統管理員 (admin) 的權限

DREAD 風險評等 (Risk Rating)

因素 (Factor) 試圖回答的問題
Damage Potential (潛在損壞程度) 如果這個攻擊成功了,情況會有多糟糕?
Reproducibility (可重現性) 重現這個攻擊手法有多容易?
Exploitability (可利用性) 成功發動這項攻擊需要多少努力、資源或專業知識?
Affected Users (受影響使用者) 會有多少使用者遭遇波及衝擊?
Discoverability (可發現性) 攻擊者發現這個漏洞點的難易程度為何?

Further Reading

Mapping: Domain 4.4 (Threat Modeling) / STRIDE 模型、DREAD 評估與信任邊界劃分。

Threat Dragon AI Tool
https://www.threatdragon.com/docs/usage/ai-tool.html

Threat modelling for everyone everywhere Game
https://github.com/tng/elevation-of-privilege
https://copi.owasp.org/


上一篇
Day 12 | 降低系統耦合度的利器:微服務與雲端共擔模型
下一篇
Day 14 | 攻擊面 (Attack Surface) 的斷捨離:功能越少越安全,維護成本也越低
系列文
從 CSSLP 視角建構恰到好處的軟體安全22
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言